﻿using System;
using System.Windows.Forms;

namespace BGShell.PowerShell.Runspaces
{
    internal interface IRunspaceProxy : IDisposable
    {
        BGShellPipelineProxy InvokeOutDefault(String command);
        BGShellPipelineProxy InvokeHookKey(Keys key);

        BGShellPipelineProxy BeginGetHistory(Action<String[]> callback);
        BGShellPipelineProxy BeginGetTabExpansions(Action<String[]> callback, String line, String lastWord);
        BGShellPipelineProxy BeginGetDataTip(Action<DataTipInfo> callback, DataTipInfo info);

        void OpenAsync();
        void CloseAsync();

        int GetExitCode();
    }
}
